Systems and methods for mobile communication integration

ABSTRACT

A mobile application for integrating a location sharing event with a messaging platform such as a text messaging or email platform allows users to be prompted about location sharing when at least a part of the message includes location or time information. In one embodiment, the mobile application takes the form of an integrated location sharing application that parses the message to discern the relevant location or time information. The application may also provide a notification of a future event and may optionally generate a location sharing event based on the notification. In another embodiment, the application permits interactive route sharing between at least two computing devices.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/661,961, filed Mar. 18, 2015; which is a continuation of U.S. patentapplication Ser. No. 13/735,840 filed on Jan. 7, 2013; which claims thebenefit of U.S. Provisional Patent Application No. 61/583,520, filedJan. 5, 2012; U.S. patent application Ser. No. 14/661,961, filed Mar.18, 2015 also is a continuation-in-part of U.S. patent application Ser.No. 13/054,075 filed on Sep. 6, 2011, now U.S. Pat. No. 9,042,919; whichis a national stage entry of International Patent Application No.PCT/US2009/050870, filed Jul. 16, 2009; which claims the benefit of U.S.Provisional Patent Application No. 61/081,313, filed Jul. 16, 2008; allof which are incorporated herein by reference in their entireties.

FIELD OF THE INVENTION

The present invention generally relates to an application operable on amobile communications device that allows for sharing of locationinformation, and more specifically relates to an application operable ona mobile communications device that provides an analysis of at least onecommunication modality in conjunction with or independent from thelocation information, and a visual display of contextually relevantinformation to one or more users.

SUMMARY

In one embodiment, the present invention generally relates to systemsand methods that utilize computer-readable instructions for integratinga location sharing event with a messaging platform. In anotherembodiment, the present invention generally relates to systems andmethods that utilize computer-readable instructions for providingnotification of a future event and may optionally generate a locationsharing event based on the notification. In yet another embodiment, thepresent invention generally relates to systems and methods that utilizecomputer-readable instructions for sharing routes between at least twocomputing devices.

In one aspect of the present invention, a method for integrating amessaging conversation with a location sharing event includes the stepsof (1) receiving a message through a first communication mode; (2)parsing the message to determine whether the message includes anindication of time, an indication of location, or both; and (3) upondetermining one of the indications, providing a prompt to a recipient ofthe message to send the location sharing event to a sender of themessage.

In another aspect of the present invention, a method for providingnotification of a future event includes the steps of (1) communicatingat least one message between at least two computing devices; (2)analyzing a context of the at least one message to determine whether themessage includes an indication of a future time commitment for a user ofat least one of the two computing devices; and (3) generating anotification reminder of the future time commitment to the user of atleast one of the two computing devices.

In yet another aspect of the present invention, a method for sharingroutes between at least two computing devices includes the steps of (1)displaying a map on a display screen of first computing device; (2)generating a route from a first location to a second location based onan approximate route indicated on the map by a user of the firstcomputing device; and (3) sending the map to the second computingdevice.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, identical reference numbers identify similar elementsor acts. The sizes and relative positions of elements in the drawingsmay not be necessarily drawn to scale. For example, the shapes ofvarious elements and angles may not be drawn to scale, and some of theseelements may be arbitrarily enlarged or positioned to improve drawinglegibility.

FIG. 1 is a diagram showing a suitable computing environment, such as apersonal computer or personal mobile computing device, for practicingthe systems and methods of various embodiments of the subject matterdisclosed herein;

FIG. 2 shows a diagram of a suitable networked computing environmentwherein a user may employ the various systems and methods of the subjectmatter disclosed herein;

FIG. 3 shows a diagram of a suitable networked computing environmentwherein a user may employ the various systems and methods of the subjectmatter disclosed herein;

FIG. 4 is a diagram of a graphical user interface for an integratedlocation sharing application capable of parsing messages according to anembodiment of the present invention;

FIG. 5 is the diagram of FIG. 4 showing optional menu items formodifying a location sharing event according to an embodiment of thepresent invention;

FIG. 6 is a displayed map having a dynamic zoom feature according to anembodiment of the present invention;

FIG. 7 is a flowchart showing a method for generating notifications offuture events using an integrated location sharing application accordingto an embodiment of the present invention; and

FIG. 8 is a flowchart showing a method for sharing routes using anintegrated location sharing application according to an embodiment ofthe present invention.

DETAILED DESCRIPTION

Embodiments of the invention may be operational with numerous generalpurpose or special purpose computing system environments orconfigurations. Examples of well-known computing systems, environments,and/or configurations that may be suitable for use with the inventioninclude, but are not limited to, personal computers (PCs), servers,networked computing systems, hand-held or laptop devices, multiprocessorsystems, microprocessor-based systems, set top boxes, programmableconsumer electronics, network PCs, minicomputers, mainframe computers,distributed computing environments that include any of the above systemsor devices, and the like.

In one embodiment, the present invention generally relates to systemsand methods that utilize computer-readable instructions for integratinga location sharing event with a messaging platform. In anotherembodiment, the present invention generally relates to systems andmethods that utilize computer-readable instructions for providingnotification of a future event and may optionally generate a locationsharing event based on the notification. In yet another embodiment, thepresent invention generally relates to systems and methods that utilizecomputer-readable instructions for sharing routes between at least twocomputing devices.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a general purpose computing device in the form of acomputer 110. Components of computer 110 may include, but are notlimited to, a processing unit 120, a system memory 130, and a system bus121 that couples various system components including the system memoryto the processing unit 120. The system bus 121 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus also known as Mezzanine bus.

Computer 110 typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby computer 110 and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media may include volatile andnonvolatile media, and/or removable and non-removable media implementedin any method or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.Computer storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can accessed by computer 110. Communication media typicallyembodies computer readable instructions, data structures, programmodules or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of the any of the aboveshould also be included within the scope of computer readable media.

The system memory 130 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 131and random access memory (RAM) 132. A basic input/output system 133(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 110, such as during start-up, istypically stored in ROM 131. RAM 132 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 120. By way of example, and notlimitation, FIG. 1 illustrates operating system 134, applicationprograms 135, other program modules 136, and program data 137.

The computer 110 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 140 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 151that reads from or writes to a removable, nonvolatile magnetic disk 152,and an optical disk drive 155 that reads from or writes to a removable,nonvolatile optical disk 156 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 141 is typically connectedto the system bus 121 through a non-removable memory interface such asinterface 140, and magnetic disk drive 151 and optical disk drive 155are typically connected to the system bus 121 by a removable memoryinterface, such as interface 150.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 110. In FIG. 1, for example, hard disk drive 141 is illustratedas storing operating system 144, application programs 145, other programmodules 146, and program data 147. Note that these components can eitherbe the same as or different from operating system 134, applicationprograms 135, other program modules 136, and program data 137. Operatingsystem 144, application programs 145, other program modules 146, andprogram data 147 are given different numbers here to illustrate that, ata minimum, they are different copies. A user may enter commands andinformation into the computer 20 through input devices such as akeyboard 162 and pointing device 161, commonly referred to as a mouse,trackball or touch pad. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices are often connected to the processing unit120 through a user input interface 160 that is coupled to the systembus, but may be connected by other interface and bus structures, such asa parallel port, game port or a universal serial bus (USB). A monitor191 or other type of display device is also connected to the system bus121 via an interface, such as a video interface 190. In addition to themonitor, computers may also include other peripheral output devices suchas speakers 197 and printer 196, which may be connected through anoutput peripheral interface 190.

The computer 110 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer180. The remote computer 180 may be a personal computer, a server, arouter, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto the computer 110, although only a memory storage device 181 has beenillustrated in FIG. 1. The logical connections depicted in FIG. 1include a local area network (LAN) 171 and a wide area network (WAN)173, but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the computer 110 is connectedto the LAN 171 through a network interface or adapter 170. When used ina WAN networking environment, the computer 110 typically includes amodem 172 or other means for establishing communications over the WAN173, such as the Internet. The modem 172, which may be internal orexternal, may be connected to the system bus 121 via the user inputinterface 160, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 110, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 1 illustrates remoteapplication programs 185 as residing on memory device 181. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

Referring now to FIG. 2, an embodiment of the present invention can bedescribed in the context of an exemplary computer network system 200 asillustrated. System 200 includes electronic user devices 210, 280, suchas cellular or mobile telephones, personal computers or workstations,that are linked via a communication medium, such as a network 220 (e.g.,the Internet), to an electronic device or system, such as a server 230.The server 230 may further be coupled, or otherwise have access, to adatabase 240, electronic storage 270 and a computer system 260. Althoughthe embodiment illustrated in FIG. 2 includes one server 230 coupled totwo user devices 210, 280 via the network 220, it should be recognizedthat embodiments of the invention may be implemented using two or moresuch user devices coupled to one or more such servers. Moreover, thenetwork 220 may include or otherwise be coupled to one or moretelecommunication towers (not shown) that provide network connectivityto one or more cellular or mobile telephones.

In an embodiment, each of the user devices 210, 280 and server 230 mayinclude all or fewer than all of the features associated with thecomputer 110 illustrated in and discussed with reference to FIG. 1. Userdevices 210, 280 include or are otherwise coupled to a computer screenor display 250, 290, respectively. User devices 210, 280 can be used forvarious purposes including both network- and local-computing processes.

The user devices 210, 280 are linked via the network 220 to server 230so that computer programs, such as, for example, a browser or otherapplications, running on the user devices 210, 280 can cooperate intwo-way communication with server 230. Server 230 may be coupled todatabase 240 and/or electronic storage 270 to retrieve informationtherefrom and to store information thereto. Moreover, and as bestillustrated in FIG. 3, the server 230 may communicate with the userdevice 210 (and/or device 280) and/or GPS/triangulation systems 350known in the art in such manner as to allow the server 230, using mapdata stored in the database 240, to generate location data 305, such as,for example, HTML data, that may be used by a browser or similarapplication to display the location of the device 210 (and/or device280). Additionally, the server 230 may be coupled to the computer system260 in a manner allowing the server to delegate certain processingfunctions to the computer system.

Referring to FIGS. 2 and 3, an embodiment includes a client-sideapplication 205 executable on, for example, user device 210. Upon acommand of a user of the device 210, the application 205 is operable tosend to the server 230 a request 310, including identifying information(e.g., email address, phone number, a service subscriber's user name,etc.) of a user of the user device 280 (or other similar user device),to create authorization data (i.e., a “ticket”) that will allow the userof the user device 280 (or the user of the other similar user device) totrack the location of the user device 210 and, consequently, the user ofthe device 210. The application 205 is configured to provide a userinterface (not shown) displayable on the display 250. The user interfacefunctions to enable the user of the device 210 to select or otherwiseinput one or more values defining the start time and/or length of a timeinterval during which the user of the user device 280 may track thelocation of the device 210. These values are included in the request310.

In response to the request 310, the server 230 is configured to generatethe ticket 315 and forward the ticket to the user device 280.Alternatively, as indicated in dashed lines in FIG. 3, the server mayprovide the ticket 315 to the user device 210, whereupon the device 210may then be used to forward the ticket to the user device 280. Theticket 315, which may be sent via SMS, email, or other suitablemessaging format, includes pointing data, such as a selectable link to aURL, that, when selected by the user of the device 280, is configured toprovide access to a tracking interface provided by the server 230. Theticket 315 may further include a default message or a customized messageinput by the user of the device 210.

Specifically, if the user of the device 280 selects a link to thepointing data, the server 230 is configured to provide location data 305to the device 280 enabling a client application 320, a browser, or otherinterface resident on the device 280 to generate a display of thegeographical location of the device 210. Advantageously, an embodimentmerely requires a conventional browser be resident on the device 280 todisplay the location of the device 210, and does not otherwise require aspecific application be installed on the device 280 to do so. Thelocation data 305 may be provided to the device 280 in a recurringmanner, such that the user of the device 280 may view the real-timemovement of the device 210, or may be provided singly so as to merelyprovide a “snapshot” of the location of the device 210.

In an embodiment, the server 230 provides the location data 305 to thedevice 280 only during the time interval designated by the user of thedevice 210 in generating the request 310. In various embodiments, theuser of the device 210 may set the time interval to commence upon theuser device 280 first accessing the location data, set the time intervalto occur during a specifically designated window of time (e.g., 2-3 PMof a particular day or set of days), or to occur at any otheruser-specified start and stop time. In an embodiment, the ticket 315received by the user of device 280 may indicate the nature (e.g., timeof commencement, duration, etc.) of the time interval. Additionally, inan alternative embodiment, the user of the device 210, rather thanprovide the time interval in the request 310 prior to the location data305 being provided to the device 280, may provide and effectuate thetime interval in a request after the device 280 has received thelocation data and begun tracking the device 210. Similarly, after thedevice 280 has received the location data and begun tracking the device210, the user of the device 210 may revoke, or otherwise modify, theeffective time interval originally included in the request 310 providedbefore generation of the ticket 315. Additionally, a particular ticket315 may be extended to a user other than and additional to the user ofdevice 280. In such case, the ticket may track absolute time remaining.As such, if the ticket 315 is a 30 minute ticket sent 20 minutes ago, itwill expire in 10 minutes for both the old and new recipient.Additionally, a predefined, external event may function to modify thesharing-permission time interval. For example, the user of the device210 may specify that the ticket 315 is valid only until the user hasarrived at a user-specified destination. Alternatively, for example, theuser of the device 210 may specify that the ticket 315 is valid onlyupon the user being a predetermined distance (e.g., one mile) from theuser's departure location.

In an embodiment, the request 310 may further include an indication of alandmark to which the user and the user device 210 are travelling.Consequently, the server 230, by employing the map data associated withthe database 240, may include the geographical location of the landmarkwith the location data 305.

It should be noted that, in an embodiment, all of the functionalitydiscussed above as attributable to the server 230 may instead beperformed solely by the application 205 executing on the user device 210communicating directly with the user device 280 over the network 220. Insuch an embodiment, the request 310 need not be generated, and theticket 315 is generated by the user device 210 and issued directly tothe user device 280. In such an embodiment, the user device 210 mayconstantly, or otherwise periodically, send updates to the user device280 until a time interval associated with a ticket 315 expires.Alternatively, the user device 280 may include an application configuredto constantly, or otherwise periodically, poll the user device 210 forlocation data. As such, in varying embodiments, the server 230 is notnecessary for implementation of the functionality described herein.

For purposes of the description herein, an embodiment of the presentinvention is directed to an integrated location sharing application thatcontrols the process of sending or receiving a location message. By wayof example, the integrated location sharing application mayadvantageously provide an easier and faster way to communicate ascompared to a phone call or text message regarding the whereabouts of asender and/or a recipient.

An Internet-enabled device such as, but not limited to, a mobile phoneor a computer may receive a location message. In one embodiment, nosoftware or setup is required to receive and potentially view thelocation message. A sender may send the location message to a specificperson, several people, or even to a social networking site or group.For purposes of brevity hereinafter, the “recipient” may refer to oneperson, group, site, namespace, or more than one person, group, site, ornamespace.

More specifically, the integrated location sharing application may takethe form of an application downloaded onto a location-enabled mobilecommunications device that allows the sender to share their location viaa map for a pre-set period of time with any recipient of the sender'schoosing. With the integrated location sharing application, the senderremains in complete control on who sees their location, when they seetheir location and for how long they can view the sender's location.

Unlike other location-based services that require users to log in andbuild a friend network before use, the integrated location sharingapplication may be used within seconds of downloading to alocation-enabled mobile communications device such as, but not limitedto a GPS-enabled mobile smartphone device. In one embodiment, theintegrated location sharing application does not require the sender orthe recipient to create an account to use the service, which eliminateslogin and password hassles.

Once downloaded, the sender may send a location message to any recipientby selecting a contact or contacts, choose a duration they want theirlocation to be available to the recipient, and then hit send on theirmobile communications device. The integrated location sharingapplication permits the sender to set a timer for how long theirlocation may be shared. The sender has the ability to “pause” or“cancel” the location message at any time or choose to extend a currentlocation message. On the receiving end, the recipient merely needs anInternet-enabled device or email access to receive the location messageand view sender's whereabouts on a map. By way of example, the recipientreceives an SMS or email message with a unique URL that can be clickedto open a browser window having a map displaying the sender's preciselocation in a context of other landmarks, streets, etc.

In one embodiment of the present invention, the integrated locationsharing application interfaces with a text message, a URL link, and/oran email platform that resides on the sender's mobile communicationsdevice. The integrated location sharing application may also interfacewith other types of input such as, but not limited to, gesture input,motion detection, third party transmissions, radio frequencyidentification information, or other scenario-based automated inputs.

By way of example, the integrated location sharing application mayreceive a text message, parse the text message, and then analyze theparsed text message to determine key words, abbreviations, symbols orother text that may be related to time and/or location. The integratedlocation sharing application analyzes a context of a messagingconversation and may then provide an inline and real-time display of theanalyzed, contextual information of the current messaging conversationthrough parsing and/or manipulation of the text message.

The integrated location sharing application may perform various parsing,analyzing and displaying techniques, which are described in detailbelow. It is appreciated that these techniques may be performedindependently, in a different sequence, and/or in any desiredcombination. Further, the integrated location sharing application mayperform the parsing, analyzing and displaying techniques using othermodes of communication besides a text or email message, for exampleusing voice recognition software to parse and analyze a real-time phoneconversation or a voicemail message.

The integrated location sharing application may utilize text parsing toinitiate an action based on a context of the message. From a contextualanalysis, the integrated location sharing application could determine ifinformation about the sender's or recipient's location would be usefulto share. For example, a person may text message a friend to say “I'mrunning late.” The integrated location sharing application would parsethe text message and recognize the context deals time (i.e., “late”) andrelative position (i.e., “running”). Accordingly, the integratedlocation sharing application would prompt the person, the friend or bothto share their respective location. In one embodiment, the integratedlocation sharing application may automatically share the parties'real-time locations because they have identified each other as friendsor favorites. In another example, the integrated location sharingapplication may prompt one or both of the parties to modify and/orupdate their respective location information. For example, one of theparties may say “I'll need to stop at the store on the way” or “I'lltake the bridge instead.” Additionally or alternatively, the integratedlocation sharing application may be used for non-location sharingscenarios such as, but not limited to, purchasing items, makingreservations, or searching for coupons.

The integrated location sharing application parses the text message tosearch for native language location and/or time information such as, butnot limited to, an address, an establishment name, a landmark name, adeparture time, traffic congestion, etc. The native language is parsed,analyzed and then mapped within the context of the text message or othermode of communication.

FIG. 4 shows a user interface 400 for the integrated location sharingapplication, which includes an integrated messaging client 402 to sendand/or receive messages and an integrated mapping client 404 to sharelocation information. In the illustrated embodiment, the integratedlocation sharing application on a first mobile communication device inthe possession of a first person sends out a first text message 406 thatsays “Hey where are you?” A second person also having the integratedlocation sharing application on a second mobile communication device inpossession of a second person receives the first text message 406, andthe integrated location sharing application would parse the first textmessage 406 and then analyze it for time and/or location information. Inthis example, the term “where” would provide a prompt 408 for the secondperson to respond with an option to share the second person's locationinformation with the first person. The prompt 408 may be sent as a link(e.g., http://location.com/abc-123) to the first person. Upon the firstperson activating the link, the first mobile communication device wouldvisually display a map 410 showing a current location 412 of the secondperson relative to one or more geographic identifiers 414 (e.g., roadnames, landmark names, etc.).

In addition, the integrated location sharing application may utilize amessaging time stamp 416 that may be cross referenced with knownlocations at those times. By way of example, the messaging time stamp416 may be displayed on the map 410 according to a real-time, geographiclocation when the text message 406 was sent as well as time stamp 416.As an added feature, a time adjuster at the bottom of the map 410 may beused to select specific parts of the text message 406 timeline. By wayof example, a time adjuster is shown in the progress bar 418 of FIG. 5as text “+15 minutes.” In another embodiment, dynamic content and/orcontextual information may be displayed on the device. For purposes ofthis description, dynamic content may be content such as, but notlimited to, information that changes about the user, such as user'slocation or status, broadcasting vs. not broadcasting. Contextualinformation may be information such as, but not limited to, restaurantratings, video, images, etc. that may be used to augment an existingtext conversation. The dynamic content and/or contextual information maybe displayed within the text message 406 and it may be accessed anddisplayed in real-time. To switch between a messaging view and a mapview, a user of the integrated location sharing application may swipeleft/right or up/down on the display screen of or alternative inputmechanism related to the computing device.

According to the illustrated embodiment, the context and/or content ofthe messaging conversation may be parsed to prompt location sharingbetween two or more parties. The content of these incoming messages maybe modified depending on the receiving client. The modifications may ormay not include the original messages or slight modifications to theoriginal messages. Within the context of the messaging conversationcommands can be made to other applications to act upon. For example, ifwithin the context of the messaging conversation a person sends, “SendLocation” to one or more email or phone contacts and selects anactivation time of thirty minutes, then the sender's location may beviewed by the recipient for thirty minutes or until the senderpurposefully expired the location sharing. Additionally oralternatively, the basic text of the messaging conversation may beadjusted dependent on an accuracy of the sender's location. In oneembodiment, the message conversation accompanying reverse geo-codedinformation may be adjusted based on the accuracy of the sender'slocation that is being reverse geo-coded. For example, the word “around”could be used when accuracy is over a certain distance and the word “at”could be used when accuracy is under a certain distance.

FIG. 5 shows a progress bar 418 of an amount of time remaining for alocation sharing event. In addition, an option menu 420 may extend fromthe progress bar 418. By way of example, the option menu 420 may providethe sender the option to extend a time amount of the location sharingevent, have the location sharing event expire upon reaching a selecteddestination, or simply expire at a present time. The option menu 420 mayinclude additional options, different options or fewer options. In oneembodiment, a freshness of the location sharing event may be displayedin a conversation view. The conversation view may comprise a list ofpeople and/or conversations that includes a visual element to indicatethe freshness, which in turn may take the form of a color treatment oran icon as shown in FIG. 4.

Still referring to FIG. 5, the freshness indicator of a color of alocation indicator, shown as arrow. In another embodiment, the freshnessindicator may take the form of a countdown timer, an animated icon,audible sounds (accuracy rings, ping sound) or some other humanperceptible signal. In any embodiment, the freshness indicator wouldprovide a viewer a signal about the freshness of the sender's location.

The indication of freshness informs the parties that are currentlyinvolved in the location sharing event a time of a most recent locationfor the sender and whether the recipient is currently sharing therecipient's location with sender. Additional information may also bedisplayed in conversation view such as, but not limited to, a relativedistance between the sender and recipient (or vice-versa), a heading ofthe sender and/or recipient, an estimated time of arrival at adestination for the sender and/or the recipient, a current city, stateor region, and a last check-in location for the sender and/or recipient.

FIG. 6 shows a map 500 of a location sharing event between a sender anda recipient. The map 500 may take the form of an interactive map havinga dynamic zoom button 502. In the illustrated embodiment, the map 500may automatically adjust a zoom level to an appropriate size to allowfor features that they viewer has selected to be shown on the map 500and stay visible on the map 500. Because of the dynamic nature of themap location features, the zoom level may be continually adjusted toaccommodate for these changes. In one embodiment, multiple buttons maybe shown on the map and these buttons may be toggled to select whichfeatures should appear on the map. As a result, the map mayautomatically resize (i.e., adjust zoom level) to optimally display theselected features on the map.

FIG. 7 shows a method 600 for providing notification of a future eventusing an integrated location sharing application according to anembodiment of the present invention. At step 602, at least one messageis communicated between at least two computing devices. At step 604, acontext of the message is analyzed to determine whether the messageincludes an indication of a future time commitment for a user of atleast one of the two computing devices. At step 606, a notificationreminder of the future time commitment is generated to the user of atleast one of the two computing devices. By way of example, a contextualanalysis of the message initiates the notification reminder, which maytake the form of an alarm, a scheduled time on a calendar, or anothertype of message on one of the computing devices. If the recipientreceives a message saying “Meet at a desired destination at 4 pm” andresponds “Ok,” the integrated location sharing application may promptthe recipient with a text message to leave at a particular time so thatthe recipient arrives at the desired destination on time. The integratedlocation sharing application accounts for the recipient's currentlocation to correlate the timing of when the text message is sent to therecipient. Upon the recipient departing from the recipient's currentlocation, the integrated location sharing application may automaticallysend a message to the sender that the recipient is “leaving now” or someother phrase that indicates to the sender that the recipient is on theway.

FIG. 8 shows a method 700 for sharing routes between at least twocomputing devices that are each using an integrated location sharingapplication according to an embodiment of the present invention. At step702, a map on a display screen of a first computing device is displayed.At step 704, a route from a first location to a second location isgenerated based on an approximate route indicated on the map by a userof the first computing device. The approximate route may be indicated bya finger, a stylus or some other instrument capable of interacting witha display screen of the first computing device. At step 706, theapproximate route is sent to the second computing device where theapproximate may be modified or revised by a user of the second computingdevice.

For example, a first user creates the approximate route with a finger ona map displayed on the first computing device. In this example, theapproximate route may be generally imprecise, but could be automaticallymodified (e.g., “snapped”) to take the form of a more precise routebased on known geographical features on the map. The approximate routeor the snapped route may be sent to a second computing device (ormultiple other computing devices) to be used as a guide for navigationor for confirmation.

Once received by the second computing device, a user of the secondcomputing device may modify or revise the route by moving parts of ormoving the entire route, again using a finger, stylus or some otherdevice capable of interacting with a display screen of the secondcomputing device. Subsequently, the modified map may be sent back to thefirst computing device or other computing device.

In another embodiment, the approximate map or the modified map may beshared in a real time display with one or more computing devices. Forexample, if one user centers the approximate map or the modified map ona particular landmark, then other users viewing the map will also seetheir map centered on the particular landmark.

In another example of the present invention, the integrated locationsharing application may allow a user to look up friend on a socialnetwork, import location information, as well as add other elements suchas photos, check-ins etc. Peripheral information gathered from socialnetworks and other web sources may be included on the map to give theuser more information about their communication partners. Thisinformation could include, but is not limited to, social networkcheck-ins, TWITTER® messages, images, social network posts, etc. Thelocation information does not need to be sent directly to the user forit to be displayed. If relevant geo-coded information may be mined frommultiple information sources, then it may be displayed to the user. Forexample, if a location message is posted to a social networking site,but not sent directly to the user, the integrated location sharingapplication may still display that location information because it ispertinent. In short, the integrated location sharing application maygather and aggregate (and possibly extrapolate) information from otherdatabases and networks. Permissions for access may vary by data source.

By way of example, the recipient may see the sender on a map and alsoseeing the last place the sender rated on a social rating site, such asYELP® review site, a recent FOURSQUARE® location check-in, and/or arecent TWITTER® message, which may be displayed in a text bubble overthe recipient's icon. The idea is to leverage social networks and otherinternet searches/databases that a first user is signed into/has accessto find all relevant information about a second user when the first useris looking at their communication with second user. Additionally, theleveraging of social networks may be done in a contextual manner,informed by the contents of the communication between the users.

In one embodiment, a location of a chat participant from a socialnetwork may be requested by a single button touch.

The integrated location sharing application may also include one or morenon-visual interaction methods and elements. By way of example, textcommands could be typed within the messaging conversation. Thesecommands would not necessarily be transmitted to a conversation partner,but rather intercepted or parsed by the integrated location sharingapplication to show information. For example, if a map is shown in themessaging conversation, the viewer could type, “show traffic” to trafficinformation on the map. The message may not, but could, be transmittedto the conversation partner, but rather interpreted by the integratedlocation sharing application and information is displayed accordingly.

The integrated location sharing application may also allow for a requestof location information sent by the sender with predefined locationsharing parameters such as, but not limited to destination, updatesspeed, messages, etc. The recipient of the request may change thesharing parameters before initiating the location sharing event.

In another embodiment, the integrated location sharing application maypermit the recipient to receive real-time location updates and estimatedtime or arrival notifications from a conversation partner or sender. Therecipient may set a parameter that asks for a notification when theconversation partner is a defined amount of time or distance away, orwhen a defined external even occurs, for example when the sender leavesa store or other location.

In yet another embodiment, real-time relative location notifications maytake into account the sender's current location and the sender'sdestination, and potentially other impacting information (e.g.transportation mode, traffic) to determine an approximate time for therecipient to meet the sender at the same destination. For example, ifthe recipient receives a message from the sender saying, “I'll be at aparticular destination in thirty minutes” and the sender is ten minutesfrom the particular destination then the recipient may receive a promptto leave their current location in twenty minutes to meet the sender atthe particular destination. In one embodiment, the prompt may take theform of a calendared event or an alarm notification on the recipient'sdevice.

The aforementioned embodiment provides an application of smartnotifications, such as when a user has an appointment that is thirtyminutes away with traffic, so the application provides a notification toleave for that destination thirty minutes before the scheduledappointment. Additionally or alternatively, the aforementionedembodiment may provide contextual notifications, which may be whencommunication between users to coordinate meeting at a particular placeat a particular time,

In yet another embodiment, the integrated location sharing applicationmay include a map button displayed on a map that reflects a relativetimeliness of recent location information by signifying that there islocation information within the context of a current conversation. Byway of example, the map button may indicate speed, heading, proximity,etc.

In another embodiment, a displayed map may include colors representingdifferent users, coordinates etc. For example, different color locationindicators may be used to differentiate various locations of differentusers. Additionally, the color indicators may be used to indicate textmessages and other information posted or sent by that user such as, butnot limited to, geo-coded images, suggested destinations, points ofinterest, etc.

Further, the displayed map may include alerts when a location isrequested. By way of example, a location request may be pushed to arecipient where the recipient is asked to confirm, deny or modify therequest. Additionally, parameters by be put into place by the recipientto automatically confirm, deny or modify the request without thesender's interaction.

In another embodiment, the displayed map may provide for a grouplocation display for group conversations in which individual locationsmay not necessarily be displayed, but instead an aggregate of the grouplocation may be displayed. The aggregate may take the form of a centerof mass or area display in which the center of mass or area may berepresented by a mean distance between all location participatingmembers of the group. The aggregate may include different specificregions of density. An optionally, the aggregate may take the form of aheat map.

Other embodiments of the integrated location sharing application mayinclude location based advertisements displayed to a viewer depending onthe sender's location. The application may include coupons or giftcertificates that may be sent to recipient depending on their location,which may be updated in real-time based on an actual or predicted pathor previous location behavior.

In one embodiment, the integrated location sharing application mayprovide for joint decision making in which a group of users within aconversation may display contextual visual information relevant to theircurrent conversation. The application may prompt one or more users tomake a decision. By way of example, a group of students are chattingabout where they want to have dinner tonight, so the applicationrecognizes the context of time and location and displays reviews forplaces in the area. The users may be asked to vote on where they wouldlike to eat.

In still yet another embodiment, the integrated location sharingapplication may provide for close contact and/or token contact betweenuser. Close contact may take the form of a location sharing relationshipcreated by actual or close contact between mobile devices. The sharingof location information may expire in a predetermined amount of time, ormay be individually turned off, or could stop depending on externalevents either automatically or manually. Token contact may be when twousers briefly tap mobile devices to establish a token which may then beshared with other persons or groups by either person. The token mayprovide rights such as a permission to share location information withothers who have been tapped.

The various embodiments described above can be combined to providefurther embodiments. All of the above U.S. patents, patent applicationsand publications referred to in this specification are incorporatedherein by reference. Aspects can be modified, if necessary, to employdevices, features, and concepts of the various patents, applications andpublications to provide yet further embodiments.

These and other changes can be made in light of the above detaileddescription. In general, in the following claims, the terms used shouldnot be construed to limit the invention to the specific embodimentsdisclosed in the specification and the claims, but should be construedto include all types of media imaging, media cutting and mediaprocessing that operate in accordance with the claims. Accordingly, theinvention is not limited by the disclosure, but instead its scope is tobe determined entirely by the following claims

We claim:
 1. A method, comprising: causing a map to be displayed by afirst computing device; generating a route from a first point to asecond point based on an approximate route indicated by a user of thefirst computing device, wherein the approximate route specifies anentire route between the first point and the second point; and whereingenerating the route is performed, at least in part, by automaticallyadjusting a portion of the approximate route to more closely conform toaspects of the map; and causing an indication of the generated route tobe sent to a second computing device in conjunction with a textualmessage, wherein sending the generated route and the textual messagecauses the second computing device to display the generated route inconjunction with the textual message.
 2. The method of claim 1: whereinthe second computing device displays a second map based on theindication of the generated route; wherein revisions to the route areindicated through interactions with the second map to generate a revisedroute; wherein the second computing device sends an indication of therevised route to the first computing device; and wherein the methodfurther comprises causing the first computing device to display a secondversion of the map based on the indication of the revised route.
 3. Themethod of claim 1: wherein the second computing device displays a secondmap based on the indication of the generated route; wherein revisions tothe route are indicated through interactions with the second map togenerate a revised route; wherein the second computing device sends anindication of the revised route to the first computing device and sendsa second textual message to the first computing device; and wherein themethod further comprises: causing the first computing device to displaya second version of the map based on the indication of the revisedroute; and causing the first computing device to display the secondtextual message in association with the second version of the map. 4.The method of claim 1 further comprising receiving a message from thesecond computing device indicating acceptance of the route.
 5. Themethod of claim 1, wherein displaying the map by the first computingdevice includes displaying location data imported from a social networkdata source.
 6. The method of claim 1 further comprising causing theroute to be displayed in conjunction with the textual message.
 7. Themethod of claim 1 further comprising: receiving route revisions from thesecond computing device; and causing the first computing device todisplay a second version of the map which includes the route revisions.8. The method of claim 1, wherein the approximate route is indicated bya user, at least in part, by the user tracing a portion of theapproximate route in relation to the map.
 9. A computing system,comprising: one or more processors; and a memory storing instructionsthat, when executed by the computing system, cause the computing systemto perform operations comprising: displaying a map; generating a routefrom a first position to a second position based on an approximate routeindicated by a user, wherein the approximate route specifies an entireroute between the first position and the second position; and whereingenerating the route is performed, at least in part, by automaticallyadjusting a portion of the approximate route to more closely conform tocharacteristics of the map; and sending an indication of the generatedroute to a second computing system in conjunction with a textualmessage, wherein sending the generated route and the textual messagecauses the second computing system to display the generated route. 10.The computing system of claim 9: wherein the second computing systemdisplays a second map based on the indication of the generated route;wherein revisions to the route are indicated through interactions withthe second map to generate a revised route; wherein the second computingsystem sends an indication of the revised route to the computing system;and wherein the operations further comprise displaying a second versionof the map based on the indication of the revised route.
 11. Thecomputing system of claim 9: wherein the second computing systemdisplays a second map based on the indication of the generated route;wherein revisions to the route are indicated through interactions withthe second map to generate a revised route; wherein the second computingsystem sends an indication of the revised route to the computing systemand sends a second textual message to the computing system; and whereinthe operations further comprise: displaying a second version of the mapbased on the indication of the revised route; and displaying the secondtextual message in association with the second version of the map. 12.The computing system of claim 9, wherein the operations further comprisereceiving a message from the second computing system indicatingacceptance of the route.
 13. The computing system of claim 9, whereindisplaying the map by the computing system includes displaying locationdata imported from a social network.
 14. The computing system of claim9, wherein the operations further comprise displaying the route inconjunction with the textual message.
 15. The computing system of claim9, wherein the operations further comprise: receiving route revisionsfrom the second computing system; and displaying a second version of themap which includes the route revisions.
 16. The computing system ofclaim 9, wherein the approximate route is indicated by a user, at leastin part, by the user tracing a portion of the approximate route inrelation to the map.
 17. A non-transitory computer-readable storagemedium storing instructions that, when executed by a computing system,cause the computing system to perform operations, the operationscomprising: identifying an incoming text message received from a secondcomputing system; parsing the incoming text message into messageportions; comparing the message portions to trigger portions; based onthe comparing, determining that at least one of the message portionsmatch at least one of the trigger portions; in response to thedetermining, providing a location sharing prompt; receiving inputspecifying acceptance of the location sharing prompt; and in response tothe input specifying acceptance of the location sharing prompt, causingindications of one or more locations associated with the computingsystem to be shared with the second computing system.
 18. Thecomputer-readable storage medium of claim 17, wherein the incoming textmessage is received via a location sharing application with anintegrated messaging portion.
 19. The computer-readable storage mediumof claim 17, wherein determining that at least one of the messageportions match at least one of the trigger portions comprisesidentifying whether any of the least one of the message portions includewords referencing location.
 20. The computer-readable storage medium ofclaim 17, wherein providing a location sharing prompt comprises sendinga link to a third computing system; and wherein the input specifyingacceptance of the location sharing prompt is received via a user of thethird computing system activating the link.